/* !
 * (c) Copyright 2025 Palantir Technologies Inc. All rights reserved.
 */

module.exports = {
    "arrow-body-style": "off",
    camelcase: "error",
    complexity: "off",
    "constructor-super": "error",
    curly: "off",
    eqeqeq: ["error", "smart"],
    "generator-star": "off",
    "guard-for-in": "error",
    "id-blacklist": ["error", "any", "Number", "String", "Boolean", "Undefined"],
    "id-match": "error",
    "max-classes-per-file": ["error", 1],
    "no-arrow-condition": "off",
    "no-bitwise": "error",
    "no-caller": "error",
    "no-cond-assign": "error",
    "no-console": [
        "error",
        {
            allow: ["warn", "assert", "debug", "info", "error"],
        },
    ],
    "no-debugger": "error",
    "no-duplicate-case": "error",
    "no-duplicate-imports": "error",
    "no-empty": "error",
    "no-eval": "error",
    "no-extra-bind": "error",
    "no-fallthrough": "off",
    "no-new-func": "error",
    "no-new-wrappers": "error",
    "no-reserved-keys": "off",
    "no-restricted-properties": [
        "error",
        {
            object: "Object",
            property: "getOwnPropertyNames",
            message: "use Object.keys()",
        },
        {
            object: "describe",
            property: "only",
            message: "should not be committed to repo, only use for debugging",
        },
        {
            object: "it",
            property: "only",
            message: "should not be committed to repo, only use for debugging",
        },
    ],
    "no-return-await": "error",
    "no-sequences": "error",
    "no-sparse-arrays": "error",
    "no-template-curly-in-string": "error",
    "no-throw-literal": "error",
    "no-undef-init": "error",
    "no-underscore-dangle": "error",
    "no-unexpected-multiline": "off",
    "no-unsafe-finally": "error",
    "no-unused-labels": "error",
    "no-var": "error",
    "no-wrap-func": "off",
    "object-shorthand": "error",
    "one-var": ["error", "never"],
    "prefer-arrow-callback": ["error", { allowNamedFunctions: true }],
    "prefer-const": "error",
    "prefer-object-spread": "error",
    radix: "error",
    "sort-imports": [
        "error",
        {
            ignoreCase: true,
            ignoreDeclarationSort: true,
            ignoreMemberSort: false,
            memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
            allowSeparatedGroups: false,
        },
    ],
    "sort-keys": [
        "error",
        "asc",
        {
            allowLineSeparatedGroups: true,
        },
    ],
    "spaced-comment": [
        "error",
        "always",
        {
            markers: ["/"],
        },
    ],
    "template-tag-spacing": "off",
    "unicode-bom": "off",
    "use-isnan": "error",
    "valid-typeof": "off",
};
